MQ是什么?TUXEDO和MQ作为中间件的区别和作用

您所在的位置:网站首页 rocketmq mqtt服务器 MQ是什么?TUXEDO和MQ作为中间件的区别和作用

MQ是什么?TUXEDO和MQ作为中间件的区别和作用

2023-03-22 10:07| 来源: 网络整理| 查看: 265

本文目录MQ是什么TUXEDO和MQ作为中间件的区别和作用消息中间件MQ是否适合于在不同企业间消息集成消息中间件之RabbitMQMQ消息中间件是开源的吗消息中间件(一)MQ详解及四大MQ比较阿里云消息中间件(MQ)探秘MQ是什么

1、消息队列

(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

2、即时通讯软件MQ

MQ是一款即时通讯软件,有即时通信、业务交易、办公管理功能。

3、度量单位

mq是意大利语metro quadrato 的缩写,英语翻译是square meter, unit for measuring area,即平方米,是一种面积单位。

4、记忆商(MQ)

当情绪上抗拒某些事情时,潜意识会对大脑皮层发出一个指令,神经细胞接收到指令后,就会关闭大脑中的一部分记忆中枢。这就是心理学所说的“心因性记忆”。

5、乘商寄存器

在运算器中,乘商寄存器主要负责数据的乘法与除法运算并可保存运算结果,是运算器的基本组成部分,是运算器三个基本寄存器之一。

TUXEDO和MQ作为中间件的区别和作用

tuxedo是交易中间件,处理海量、并发、分布式的事务处理;MQ是消息中间件,处理准同步的消息传递和处理;tuxedo在金融、电信业广泛使用,MQ我也就知道用在网管和文件传递这块。

消息中间件MQ是否适合于在不同企业间消息集成

在“一考定终身“的考试制度下,选择复读的考生不外乎这样几种:有的是带着“名校情结“之类的信念,有的是为了考到更好的学校以待毕业后能够更好地找工作,有的是因为考本科或考二本或考重点大学差几分,还有的是因为志愿没有报好的缘故。“一花一世界,一叶一如来。“并不是每个人都适合选择复读,对这个问题的分析,需要用到我们高中数学里面的分类讨论的思想和方法。有少部分高考考生是带有“名校情结“,出于对名校学习生活的向往,将考上名校作为自己人生的目标,并以此作为信念,执着地追求者,对于这种精神,是值得鼓励的,也是值得学习的,在此过程中锤炼出锲而不舍的精神意志对以后的人生成长来说是一笔宝贵的精神财富。俞敏洪,考北大研究生,先后考了三次,在备考过程中,将牛津词典全部背下,最后,皇天不负有心人,终于了却了他的心愿,经历三次考研最后成功的经历,给他之后的人生带来了遇到挫折越挫越勇的品格,对于他今后的创业经历来说是一座宝贵的“精神富矿“。对于带有类似信念而选择复读的考生,是应该点一个赞的。但是,恐怕对于更多的考生来说,上大学是为了毕业之后能够找到自己满意的工作。对于就业,重点大学比起普通高校来更有优势,普通大学比起三类本科来更有优势,这只是一个整体的情况。真正到了就业市场,用人单位更多的是看应聘者所展现出来的个人能力,没有哪个用人单位会因为应聘者的学校口碑不好而将前来应聘的人定义为“低能儿“、“劣等生“。阿里巴巴的创始人马云,高考考了三次,最后也只是考取了杭州师专,一所大专院校,可是,高考的晦涩经历丝毫没有影响到他之后创业所取得的巨大成功。对于这类没有“名校情结“的广大考生来说,复读一年,所付出巨大的直接成本和间接成本是不划算的。对于那些平时成绩良好,但高考临场发挥失常的考生,是可以考虑通过复读来把下一次机会把握在自己手里的,不因高考发挥失常而给自己人生留下遗憾。但是,对于那些平时成绩与高考成绩很接近的考生,在选择复读之前还是应该考虑好自己复读的动机,以及复读涨分的可能性。另外,对于那些考二本欠几分,上重点欠几分的考生,在对自身特点进行总结,对下一年考试趋势做出分析之后,综合权衡,是可以考虑复读的。对于那些因填报高考志愿的错误而与理想学校无缘者,可以考虑选择复读,同时要认真阅读关于高考志愿填报的书籍,学习志愿填报技巧,争取复读之后不重蹈覆辙。对于不在此类的考生,不建议其复读。

消息中间件之RabbitMQ

JMS:Java Message Service,java消息服务,是一个消息服务的标准或者说是规范,允许应用程序组件基于JavaEE平台创建、发送、接收和读取消息。它使分布式通信耦合度更低,消息服务更加可靠以及异步性。 JMS是java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。

p2p:点对点发送,一个消息只能被消费一次 涉及: 消息队列(Queue) 发送者(Sender) 接收者(Receiver) 每个消息都被发送到一个特定的队列,接收者从队列中获取消息。队列保留着信息,直到它们被消费或超时。 示意图:p2p示意图 特点:

Pub/Sub:发布订阅,一个消息可以被消费多次 涉及角色: 主题(Topic) 发布者(Publisher) 订阅者(Subscriber) 客户端将消息发送到主题。多个发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。 示意图:Pub/Sub示意图 特点:

MQ:消息中间件(MOM:Message Orient middleware),消息队列 作为系统间通信的必备技术,低耦合、可靠传输、流量控制、最终一致性 实现异步消息通信

Apache下 完全支持Java的JMS协议 消息模式:1、点对点 2、发布订阅

Erlang语言实现的开源的MQ中间件,支持多种协议 主要的通信协议是AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用协议的一个开放标准,为面向消息的中间件设计。

Apache下开源项目 高性能分布式消息队列,一般海量数据传输,大数据部门用 单机吞吐量:10w/s

阿里 贡献给了Apache 参考了Kafka实现基于Java 消息中间件

消息传输最快

RabbitMQ是一个开源的AMQP实现,服务端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

涉及角色:

可以基于Docker安装RabbitMQ,记住其端口: 15672:网页版可视化服务器数据 5672:客户端连接的端口号

点对点消息 一个消息只能消费一次 只需要队列就可以,不需要交换机 消息发送者和消息接收者者可以不同时在线

RabbitMQ特色就在于Exchange,主要有以下类型: fanout:只要有消息就转发给绑定的队列,不会进行消息的路由判断 direct:会根据路由匹配规则,将消息发送到指定队列中,注意路由规则不支持特殊字符 topic:会根据路由匹配规则,将消息发送到指定队列中,注意路由规则支持特殊字符,比如:* #

MQ消息中间件是开源的吗

MQ消息中间件是开源的。消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。经过消息队列,应用程序可独立地执行--它们不须要知道彼此的位置、或在继续执行前不须要等待接收程序接收此消息。中间件是一种独立的系统软件或服务程序,分布式应用系统借助这种软件在不一样的技术之间共享资源,管理计算资源和网络通信。它在计算机系统中是一个关键软件,它能实现应用的互连和互操做性,能保证系统的安全、可靠、高效的运行。中间件位于用户应用和操做系统及网络软件之间,它为应用提供了公用的通讯手段,而且独立于网络和操做系统。中间件为开发者提供了公用于全部环境的应用程序接口,当应用程序中嵌入其函数调用,它即可利用其运行的特定操做系统和网络环境的功能,为应用执行通讯功能。没有消息中间件完成信息交换,应用开发者为了传输数据,必需要学会如何用网络和操做系统软件的功能,编写相应的应用程序来发送和接收信息,且交换信息没有标准方法,每一个应用必须进行特定的编程从而和多平台、不一样环境下的一个或多个应用通讯。例如,为了实现网络上不一样主机系统间的通讯,将要求具有在网络上如何交换信息的知识;为了实现同一主机内不一样进程之间的通信,将要求具有操做系统的消息队列或命名管道(Pipes)等知识。

消息中间件(一)MQ详解及四大MQ比较

一、消息中间件相关知识

1、概述

消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。

2、消息中间件的组成

2.1 Broker

消息服务器,作为server提供消息核心服务

2.2 Producer

消息生产者,业务的发起方,负责生产消息传输给broker,

2.3 Consumer

消息消费者,业务的处理方,负责从broker获取消息并进行业务逻辑处理

2.4 Topic

2.5 Queue

2.6 Message

消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输

3 消息中间件模式分类

3.1 点对点

PTP点对点:使用queue作为通信载体

说明:

消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。

消息被消费以后,queue中不再存储,所以消息消费者不可能消费到已经被消费的消息。 Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。

说明:

queue实现了负载均衡,将producer生产的消息发送到消息队列中,由多个消费者消费。但一个消息只能被一个消费者接受,当没有消费者可用时,这个消息会被保存直到有一个可用的消费者。

4 消息中间件的优势

4.1 系统解耦

交互系统之间没有直接的调用关系,只是通过消息传输,故系统侵入性不强,耦合度低。

4.2 提高系统响应时间

例如原来的一套逻辑,完成支付可能涉及先修改订单状态、计算会员积分、通知物流配送几个逻辑才能完成;通过MQ架构设计,就可将紧急重要(需要立刻响应)的业务放到该调用方法中,响应要求不高的使用消息队列,放到MQ队列中,供消费者处理。

4.3 为大数据处理架构提供服务

通过消息作为整合,大数据的背景下,消息队列还与实时处理架构整合,为数据处理提供性能支持。

4.4 Java消息服务——JMS

Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

5 消息中间件应用场景

5.1 异步通信

有些业务不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。

5.2 解耦

降低工程间的强依赖程度,针对异构系统进行适配。在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。通过消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口,当应用发生变化时,可以独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。

5.3 冗余

有些情况下,处理数据的过程会失败。除非数据被持久化,否则将造成丢失。消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的”插入-获取-删除”范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。

5.4 扩展性

因为消息队列解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可。不需要改变代码、不需要调节参数。便于分布式扩容。

5.5 过载保护

在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量无法提取预知;如果以为了能处理这类瞬间峰值访问为标准来投入资源随时待命无疑是巨大的浪费。使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。

5.6 可恢复性

系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。

5.7 顺序保证

在大多使用场景下,数据处理的顺序都很重要。大部分消息队列本来就是排序的,并且能保证数据会按照特定的顺序来处理。

5.8 缓冲

在任何重要的系统中,都会有需要不同的处理时间的元素。消息队列通过一个缓冲层来帮助任务最高效率的执行,该缓冲有助于控制和优化数据流经过系统的速度。以调节系统响应时间。

5.9 数据流处理

分布式系统产生的海量数据流,如:业务日志、监控数据、用户行为等,针对这些数据流进行实时或批量采集汇总,然后进行大数据分析是当前互联网的必备技术,通过消息队列完成此类数据收集是最好的选择。

6 消息中间件常用协议

6.1 AMQP协议

AMQP即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。

优点:可靠、通用

6.2 MQTT协议

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。

优点:格式简洁、占用带宽小、移动端通信、PUSH、嵌入式系统

6.3 STOMP协议

STOMP(Streaming Text Orientated Message Protocol)是流文本定向消息协议,是一种为MOM(Message Oriented Middleware,面向消息的中间件)设计的简单文本协议。STOMP提供一个可互操作的连接格式,允许客户端与任意STOMP消息代理(Broker)进行交互。

优点:命令模式(非topic\queue模式)

6.4 XMPP协议

XMPP(可扩展消息处理现场协议,Extensible Messaging and Presence Protocol)是基于可扩展标记语言(XML)的协议,多用于即时消息(IM)以及在线现场探测。适用于服务器之间的准即时操作。核心是基于XML流传输,这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。

优点:通用公开、兼容性强、可扩展、安全性高,但XML编码格式占用带宽大

6.5 其他基于TCP/IP自定义的协议

有些特殊框架(如:redis、kafka、zeroMq等)根据自身需要未严格遵循MQ规范,而是基于TCP\IP自行封装了一套协议,通过网络socket接口进行传输,实现了MQ的功能。

7 常见消息中间件MQ介绍

7.1 RocketMQ

阿里系下开源的一款分布式、队列模型的消息中间件,原名Metaq,3.0版本名称改为RocketMQ,是阿里参照kafka设计思想使用java实现的一套mq。同时将阿里系内部多款mq产品(Notify、metaq)进行整合,只维护核心功能,去除了所有其他运行时依赖,保证核心功能最简化,在此基础上配合阿里上述其他开源产品实现不同场景下mq的架构,目前主要多用于订单交易系统。

具有以下特点:

官方提供了一些不同于kafka

特性:

二、主要消息中间件的比较

阿里云消息中间件(MQ)探秘

我今天的分享就到这里,谢谢大家!



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3